iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0

輸入第一個整數,決定輸出圖形種類,
輸入第二個整數,決定輸出的行數。
..1
.121
12321
.121
..1

7531357
.53135
..313
...1
輸入說明:
每一組兩個數字,輸入-1結束所有輸入。
第一個正整數,1為菱形數字,2為三角形數字,其餘輸入均為不合法。
第二個正整數為行數 N, 第一種圖形合法輸入 N 為奇數,1<=N<=18,
第二種圖形合法輸入,1<=N<=5,其餘輸入均為不合法。
不合法輸入,則輸出 E。

輸出說明:
每個圖形之間需留空行
請參考範例輸出。

Sample Input1:
1 9
1 13
-1

Sample Output:
....1
...121
..12321
.1234321
123454321
.1234321
..12321
...121
....1

......1
.....121
....12321
...1234321
..123454321
.12345654321
1234567654321
.12345654321
..123454321
...1234321
....12321
.....121
......1

Sample Input2:
1 22
1 5
-1

Sample Output:
E

..1
.121
12321
.121
..1

Sample Input3:
2 5
2 4
2 2
2 12
-1

Sample Output:
975313579
.7531357
..53135
...313
....1

7531357
.53135
..313
...1

313
.1

E

#include <stdio.h>
int p1(int n){
    int i=1;
    while(n>=i){
        printf(".");
        n--;
    }
}
int p2(int n){
    int i=1;
    while(i<=n){
        printf("%d",i);
        i++;
    }
}
int p3(int n){
    int i=1;
    while(n>=i){
        printf("%d",n);
        n--;
    }
}
int p4(int n){//下半部點
    int i=1;
    while(i<=n){
        printf(".");
        i++;
    }
}
int p5(int n){
    int i=1;
    while(n>=1){
        printf("%d",i);
        i++;
        n--;
    }
}
int p6(int n){
    int i=1;
    while(n>=1){
        printf("%d",n);
        n--;
    }
}
int p7(int n){
    int i=1;
    while(n>=i){
        printf("%d",n);
        n-=2;
    }
}
int p8(int n){
    int i=3;
    while(i<=n){
        printf("%d",i);
        i+=2;
    }
}
int main(){
    int a=0,n=0,i,j,b;
    while(1){
        scanf("%d",&a);
        if(a==-1){
            break;
        }
        scanf("%d",&n);
        if(a==1 && n>=1 && n<=18){
            b=n/2;
            for(i=1;i<=n/2+1;i++){
                p1(b);
                p2(i);
                if(i>1){
                    p3(i-1);
                }
                printf("\n");
                b--;
            }
            b=n/2;
            for(j=1;j<=n/2;j++){
                p4(j);
                p5(b);
                b--;
                p6(b);
                printf("\n");
            }
        }
        else if(a==2 && n>=1 && n<=5){
            b=2*n-1;
            for(i=1;i<=n;i++){
                if(i>1){
                    p4(i-1);
                }
                p7(b);
                p8(b);
                b-=2;
                printf("\n");
            }
        }
        else{
            printf("E\n");
        }
    }

}


上一篇
[Day22]找出規律
下一篇
[Day24]整數的交集聯集
系列文
環島C一下自己的人生24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言